ci: align Java test runtime with latest pre-release tooling#1882
Merged
Conversation
The rolling 'jdtls/snapshots/repository/latest/' snapshot drifted: newer jdt.ls builds inconsistently bundle junit-platform-* jars (currently 1.14.x / jupiter 5.14.x) that conflict with the JUnit 6 (6.0.x) stack the plugin manifest requires, breaking OSGi resolution during 'Build OSGi bundle' (mvnw clean verify). Pin to 1.55.0.202512042336 (the last snapshot before jdt.ls started bundling junit-platform-*, and the build used when JUnit 6 support landed in #1820). With this pin the entire JUnit stack resolves consistently from the Eclipse 4.38 / 2025-12 platform: JUnit 5 (platform 1.14.1 + jupiter 5.14.1), JUnit 4 (vintage 5.14.1) and JUnit 6 (6.0.1) are all present, so no runtime regression. Regenerate contributes.javaExtensions accordingly: the 1.14.x/5.14.x bundles now come from Eclipse (1.14.1/5.14.1) instead of jdt.ls (1.14.4/5.14.4); asm 9.9.0. Verified locally: 'npm run build-plugin' -> BUILD SUCCESS and 'git diff --exit-code package.json' is clean after regeneration.
wenytang-ms
force-pushed
the
fix/pin-jdtls-target-platform
branch
from
July 7, 2026 08:17
bd36059 to
6cc5749
Compare
chagong
approved these changes
Jul 8, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
CI was failing in the VS Code extension test step after installing the latest
redhat.java --pre-release.The failing tests all called JDT LS delegate commands from the Java test plugin and failed with errors such as:
This means the Java test plugin bundle was not resolved/loaded into the JDT LS runtime used by the latest Red Hat Java pre-release.
Root cause
CI intentionally installs rolling Java pre-release tooling:
The latest
redhat.javapre-release moved to a newer JDT LS / dependency stack. The target platform and packaged server jars therefore need to remain compatible with that rolling stack.The new stack exposes a few dependency-resolution issues:
bundle-version="5.14.0"is a lower bound, not an exact version, so JUnit 5 requirements can accidentally match JUnit 6 bundles.9.10.1, while JaCoCo0.8.14requires ASM< 9.10.server/content stays version-consistent.Fix
Keep CI tracking latest Java pre-release tooling, and make the target platform/runtime explicit enough to resolve consistently:
https://download.eclipse.org/jdtls/snapshots/repository/latest/.junit-jupiter-migrationsupport, Vintage, Platform runner/suite bundles) at the current 5.14.4 / 1.14.4 line.0.8.15, which supports ASM9.10.1.contributes.javaExtensionsfrom the builtserver/artifacts.The test runner still installs
redhat.java --pre-releaseandvscjava.vscode-java-debug --pre-release, so CI continues to catch future breakages from upstream pre-release changes.Verification
Local verification:
PR CI is green on Linux, Windows, and macOS.